//引入数据结构
const { payTimeModel } = require(`../modules/payTimeModule`)

//新增项目类别

async function addProject(req, res) {
    try {
        const { projectName } = req.body;//获取前端发过来的数据
        const result = await payTimeModel.find({ projectName });
        if (result.length > 0) {
            res.send({
                message: '新增失败已有此项目类别',
                code: 500
            })
        } else {
            await payTimeModel.create({ projectName });//新增到数据库
            res.send({
                message: '新增成功',
                code: 200
            })
        }

        // console.log(`前端返回的值------------`, projectName);

    } catch (error) {
        console.log(`新增失败--------------`, error);
        res.send({
            message: '新增失败',
            code: 500
        })
    }
}

// 得到筛选项目类别
async function getProject(req, res) {
    try {
        const { nowPage, pageSize, value, cmd } = req.body;
        if (cmd) {
            const data = await payTimeModel.find();
            res.send({
                data,
                message: '获取到所有的数据',
                code: 200
            })
        } else {
            const total = await payTimeModel.countDocuments({
                projectName: {
                    $regex: value,
                    $options: `$i`
                }
            }); //得出总的条数

            // console.log(`获取收费项目的总条数-----------------------`, total);
            if (total) {
                const pages = Math.ceil(total / pageSize);  //总共的页数是 总的数据条数/一页展示多少条  然后向上取整 多的显示一页
                const data = await payTimeModel
                    .find(
                        {
                            projectName: {
                                $regex: value,
                                $options: `$i`
                            }
                        })//查询符合条件的所有数据
                    .limit(pageSize * 1) //只请求一页需要展示的数据
                    .skip((nowPage * 1 - 1) * pageSize); //需要跳过的数据 在第一页的时候 跳过0条 第二页的时候 跳过第一页所需要的数据
                // console.log(`所有的项目名称-------------------`, data);
                res.send({
                    pages,
                    total,
                    data,
                    message: '获取到所有项目类别数据',
                    code: 200
                })
            } else {
                res.send({
                    message: '数据库暂无查询相关值请先新增',
                    code: 500
                })
            }
        }

    } catch (error) {
        console.log(`新增失败--------------`, error);
        res.send({
            message: '新增失败',
            code: 500
        })
    }
}
//删除
async function delProject(req, res) {
    try {
        const { _id } = req.body;
        await payTimeModel.deleteOne({ _id });
        const total = await payTimeModel.countDocuments();
        res.send({
            total,
            message: '删除成功',
            code: 200
        })
    } catch (error) {
        console.log(`新增失败--------------`, error);
        res.send({
            message: '新增失败',
            code: 500
        })
    }
}
//修改
async function changeProject(req, res) {
    try {
        const { _id, projectName, remark } = req.body;

        await payTimeModel
            .updateOne({ _id }, { projectName, remark })

        res.send({
            message: `修改成功`,
            code: 200
        })
        // console.log(`前端返回修改的值====================`, data);

    } catch (error) {
        console.log(`新增失败--------------`, error);
        res.send({
            message: '新增失败',
            code: 500
        })
    }
}

module.exports = {
    addProject, getProject, delProject, changeProject
}



